线性回归之向量化 linear regression -- vectorization
在线性回归中,通过梯度下降不停的迭代以减少代价函数的值,来拟合出一个效果较好的模型。代价函数如下所示,其中:数据集为m个样本,n个特征。
先看,在matlab / octave中,我们完全可以把它转化为矩阵运算,而不用使用for循环去解决。因此:对于m个样本n个特征的数据集来说:
因此:。
所以,这样在matlab/octave中就可以很方便的利用矩阵运算来求解。
再来看梯度下降,求解。拿n=2来举例,梯度下降公式为:
注意:
要同时更新。上述公式也可以向量化:
,其中:
再看矩阵里的元素又可以写成矩阵相乘的形式:.
因此 。然后设置学习率和迭代次数就可以求出最优参数。